﻿/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
 */

(function() {
	window.CKFinder = function(a, b, c, d) {
		var e = this;
		e.BasePath = a || CKFinder.DEFAULT_BASEPATH;
		e.Width = b || '100%';
		e.Height = c || 400;
		e.SelectFunction = d || null;
		e.SelectFunctionData = null;
		e.SelectThumbnailFunction = d || null;
		e.SelectThumbnailFunctionData = null;
		e.DisableThumbnailSelection = false;
		e.ClassName = 'CKFinderFrame';
		e.StartupPath = null;
		e.StartupFolderExpanded = false;
		e.RememberLastFolder = true;
		e.ResourceType = null;
		e.Id = null;
		e.Skin = null;
	};
	CKFinder.DEFAULT_BASEPATH = '/ckfinder/';
	CKFinder.ConnectorLanguage = 'java';
	CKFinder._ = {
		instanceConfig : []
	};
	(function() {
		function a(b) {
			var c = 1;
			while (CKFinder._.instanceConfig[c])
				c++;
			CKFinder._.instanceConfig[c] = b;
			return c;
		}
		;
		CKFinder.prototype = {
			Create : function() {
				document.write(this.CreateHtml());
			},
			CreateHtml : function() {
				var d = this;
				var b = d.ClassName;
				if (b && b.length > 0)
					b = ' class="' + b + '"';
				var c = d.Id;
				if (c && c.length > 0)
					c = ' id="' + c + '"';
				return '<iframe src="' + d._BuildUrl() + '" width="' + d.Width + '" ' + 'height="'
						+ d.Height + '"' + b + c + ' frameborder="0" scrolling="no"></iframe>';
			},
			Popup : function(b, c) {
				b = b || '80%';
				c = c || '70%';
				if (typeof b == 'string' && b.length > 1 && b.substr(b.length - 1, 1) == '%')
					b = parseInt(window.screen.width * parseInt(b, 10) / 100, 10);
				if (typeof c == 'string' && c.length > 1 && c.substr(c.length - 1, 1) == '%')
					c = parseInt(window.screen.height * parseInt(c, 10) / 100, 10);
				if (b < 200)
					b = 200;
				if (c < 200)
					c = 200;
				var d = parseInt((window.screen.height - c) / 2, 10), e = parseInt(
						(window.screen.width - b) / 2, 10), f = 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,width='
						+ b + ',height=' + c + ',top=' + d + ',left=' + e, g = window.open('',
						'CKFinderPopup', f, true);
				if (!g)
					return false;
				var h = this._BuildUrl().replace(/&amp;/g, '&');
				try {
					g.moveTo(e, d);
					g.resizeTo(b, c);
					g.focus();
					g.location.href = h;
				} catch (i) {
					g = window.open(h, 'CKFinderPopup', f, true);
				}
				return true;
			},
			_BuildUrl : function(b) {
				var e = this;
				b = b || e.BasePath;
				var c = '';
				if (!b || b.length === 0)
					b = CKFinder.DEFAULT_BASEPATH;
				if (b.substr(b.length - 1, 1) != '/')
					b += '/';
				b += 'ckfinder.html';
				var d;
				if (e.SelectFunction) {
					d = e.SelectFunction;
					if (typeof d == 'function')
						d = d.toString().match(/function ([^(]+)/)[1];
					c += '?action=js&amp;func=' + d;
				}
				if (e.Skin) {
					c += c ? '&amp;' : '?';
					c += 'skin=' + encodeURIComponent(e.Skin);
				}
				if (e.SelectFunctionData) {
					c += c ? '&amp;' : '?';
					c += 'data=' + encodeURIComponent(e.SelectFunctionData);
				}
				if (e.ResourceType) {
					c += c ? '&amp;' : '?';
					c += 'type=' + encodeURIComponent(e.ResourceType);
				}
				if (e.DisableThumbnailSelection) {
					c += c ? '&amp;' : '?';
					c += 'dts=1';
				} else if (e.SelectThumbnailFunction || e.SelectFunction) {
					d = e.SelectThumbnailFunction || e.SelectFunction;
					if (typeof d == 'function')
						d = d.toString().match(/function ([^(]+)/)[1];
					c += c ? '&amp;' : '?';
					c += 'thumbFunc=' + d;
					if (e.SelectThumbnailFunctionData)
						c += '&amp;tdata=' + encodeURIComponent(e.SelectThumbnailFunctionData);
					else if (!e.SelectThumbnailFunction && e.SelectFunctionData)
						c += '&amp;tdata=' + encodeURIComponent(e.SelectFunctionData);
				}
				if (e.StartupPath) {
					c += c ? '&amp;' : '?';
					c += 'start='
							+ encodeURIComponent(e.StartupPath
									+ (e.StartupFolderExpanded ? ':1' : ':0'));
				}
				if (e.RememberLastFolder !== undefined && !e.RememberLastFolder) {
					c += c ? '&amp;' : '?';
					c += 'rlf=0';
				}
				if (e.Id) {
					c += c ? '&amp;' : '?';
					c += 'id=' + encodeURIComponent(e.Id);
				}
				return b + c;
			}
		};
		CKFinder.Create = function(b, c, d, e) {
			var f;
			if (b !== null && typeof b == 'object') {
				f = new CKFinder();
				for ( var g in b)
					f[g] = b[g];
			} else
				f = new CKFinder(b, c, d, e);
			f.Create();
		};
		CKFinder.Popup = function(b, c, d, e) {
			var f, g;
			if (b !== null && typeof b == 'object') {
				g = a(b);
				f = new CKFinder();
				for ( var h in b)
					f[h] = b[h];
			} else
				f = new CKFinder(b, c, d, e);
			f.Popup(c, d);
		};
		CKFinder.SetupFCKeditor = function(b, c, d, e) {
			var f, g;
			if (c !== null && typeof c == 'object') {
				g = a(c);
				f = new CKFinder();
				for ( var h in c) {
					f[h] = c[h];
					if (h == 'Width') {
						var i = f[h] || 800;
						if (typeof i == 'string' && i.length > 1
								&& i.substr(i.length - 1, 1) == '%')
							i = parseInt(window.screen.width * parseInt(i, 10) / 100, 10);
						b.Config.LinkBrowserWindowWidth = i;
						b.Config.ImageBrowserWindowWidth = i;
						b.Config.FlashBrowserWindowWidth = i;
					} else if (h == 'Height') {
						var j = f[h] || 600;
						if (typeof j == 'string' && j.length > 1
								&& j.substr(j.length - 1, 1) == '%')
							j = parseInt(window.screen.height * parseInt(j, 10) / 100, 10);
						b.Config.LinkBrowserWindowHeight = j;
						b.Config.ImageBrowserWindowHeight = j;
						b.Config.FlashBrowserWindowHeight = j;
					}
				}
			} else
				f = new CKFinder(c);
			var k = f.BasePath;
			if (k.substr(0, 1) != '/' && k.indexOf('://') == -1)
				k = document.location.pathname.substring(0, document.location.pathname
						.lastIndexOf('/') + 1)
						+ k;
			k = f._BuildUrl(k);
			var l = k.indexOf('?') !== -1 ? '&' : '?';
			if (g) {
				k += l + 'configId=' + g;
				l = '&';
			}
			b.Config.LinkBrowserURL = k;
			b.Config.ImageBrowserURL = k + l + 'type=' + (d || 'Images');
			b.Config.FlashBrowserURL = k + l + 'type=' + (e || 'Flash');
			var m = k.substring(0, 1 + k.lastIndexOf('/'));
			b.Config.LinkUploadURL = m + 'core/connector/' + CKFinder.ConnectorLanguage
					+ '/connector.' + CKFinder.ConnectorLanguage
					+ '?command=QuickUpload&type=Files';
			b.Config.ImageUploadURL = m + 'core/connector/' + CKFinder.ConnectorLanguage
					+ '/connector.' + CKFinder.ConnectorLanguage + '?command=QuickUpload&type='
					+ (d || 'Images');
			b.Config.FlashUploadURL = m + 'core/connector/' + CKFinder.ConnectorLanguage
					+ '/connector.' + CKFinder.ConnectorLanguage + '?command=QuickUpload&type='
					+ (e || 'Flash');
		};
		CKFinder.SetupCKEditor = function(b, c, d, e) {
			if (b === null) {
				for ( var f in CKEDITOR.instances)
					CKFinder.SetupCKEditor(CKEDITOR.instances[f], c, d, e);
				CKEDITOR.on('instanceCreated', function(o) {
					CKFinder.SetupCKEditor(o.editor, c, d, e);
				});
				return;
			}
			var g, h;
			if (c !== null && typeof c == 'object') {
				h = a(c);
				g = new CKFinder();
				for ( var i in c) {
					g[i] = c[i];
					if (i == 'Width') {
						var j = g[i] || 800;
						if (typeof j == 'string' && j.length > 1
								&& j.substr(j.length - 1, 1) == '%')
							j = parseInt(window.screen.width * parseInt(j, 10) / 100, 10);
						b.config.filebrowserWindowWidth = j;
					} else if (i == 'Height') {
						var k = g[i] || 600;
						if (typeof k == 'string' && k.length > 1
								&& k.substr(k.length - 1, 1) == '%')
							k = parseInt(window.screen.height * parseInt(k, 10) / 100, 10);
						b.config.filebrowserWindowHeight = k;
					}
				}
			} else
				g = new CKFinder(c);
			var l = g.BasePath;
			if (l.substr(0, 1) != '/' && l.indexOf('://') == -1)
				l = document.location.pathname.substring(0, document.location.pathname
						.lastIndexOf('/') + 1)
						+ l;
			l = g._BuildUrl(l);
			var m = l.indexOf('?') !== -1 ? '&' : '?';
			if (h) {
				l += m + 'configId=' + h;
				m = '&';
			}
			b.config.filebrowserBrowseUrl = l;
			b.config.filebrowserImageBrowseUrl = l + m + 'type=' + (d || 'Images');
			b.config.filebrowserFlashBrowseUrl = l + m + 'type=' + (e || 'Flash');
			var n = l.substring(0, 1 + l.lastIndexOf('/'));
			b.config.filebrowserUploadUrl = n + 'core/connector/' + CKFinder.ConnectorLanguage
					+ '/connector.' + CKFinder.ConnectorLanguage
					+ '?command=QuickUpload&type=Files';
			b.config.filebrowserImageUploadUrl = n + 'core/connector/'
					+ CKFinder.ConnectorLanguage + '/connector.' + CKFinder.ConnectorLanguage
					+ '?command=QuickUpload&type=' + (d || 'Images');
			b.config.filebrowserFlashUploadUrl = n + 'core/connector/'
					+ CKFinder.ConnectorLanguage + '/connector.' + CKFinder.ConnectorLanguage
					+ '?command=QuickUpload&type=' + (e || 'Flash');
		};
	})();
})();
